Authorities said 40-year-old George Parks forced his way inside a house on the 700 block of East Chesnut Street around 3:30 a.m.
One of the homeowners confronted him and they "fought for several minutes" before Parks overpowered the victim and held a gun to their head, police said.
The other homeowner "tried to help (...) by grabbing a firearm in their residence they had for protection," authorities said. Parks overpowered the second victim and took the gun, according to investigators.
Police said Parks held the victims captive for two and a half hours while he ransacked their home, beating one of them with a gun and threatening them both.
He left around 6 a.m. with stolen cash and the victims' gun, police said.
Parks was arrested in front of his Lincoln Highway home around 1:15 a.m. on Wednesday, May 22, authorities said. The stolen gun was recovered along with bloody clothing, a bag of new clothes, and receipts for vehicle repairs, they added.
He is charged with felony kidnapping, burglary, assault, and related counts and is being held in lieu of a $750,000 bond, court records show. His preliminary hearing is scheduled for May 29.
Click here to follow Daily Voice Skippack and receive free news updates.